home *** CD-ROM | disk | FTP | other *** search
- WaitDisk equ 30
-
- MAINCODE:
- movem.l d0-d7/a0-a6,-(SP)
- move.l 4.w,a6
- LEA DosName(PC),A1
- JSR -$198(A6)
- MOVE.L D0,DosBase
- BEQ.w EXIT3
- LEA GfxName(PC),A1
- JSR -$198(A6)
- MOVE.L d0,GfxBase
- BEQ.w EXIT2
- LEA IntuiName(PC),A1
- JSR -$198(A6)
- MOVE.L D0,IntuiBase
- BEQ.w EXIT1
- MOVE.L d0,A0
- CMP.W #39,$14(A0)
- BLT.s VecchiaIntui
- BSR.w ResettaSpritesV39
- VecchiaIntui:
- MOVE.L IntuiBase(PC),A6
- move.l $3c(a6),a0
- LEA $2c(A0),A0
- move.l a0,VPfirstScreen
- move.l 4(a0),a0
- MOVEQ #0,D0
- MOVE.L GfxBase(PC),A6
- JSR -$246(A6)
- move.w d0,SavedColor0
- move.l VPfirstScreen(PC),a0
- LEA colore0(PC),A1
- MOVEQ #1,D0
- JSR -$C0(A6)
- MOVE.L $22(A6),WBVIEW
- SUB.L A1,A1
- JSR -$DE(A6)
- SUB.L A1,A1
- JSR -$DE(A6)
- JSR -$10E(A6)
- JSR -$10E(A6)
- JSR -$10E(A6)
- JSR -$10E(A6)
- bsr.w InputOFF
- MOVE.L 4.w,A6
- SUB.L A1,A1
- JSR -$126(A6)
- MOVE.L D0,A1
- move.l d0,ThisTask
- MOVE.L $B8(A1),pr_Win
- MOVE.L #-1,$B8(A1)
- MOVEQ #-1,D0
- JSR -$12C(A6)
- LEA $DFF006,A5
- lea $bfe001,a4
- moveq #6,d2
- MOVE.w #$dd,D0
- MOVE.w #WaitDisk,D1
- WaitaLoop:
- btst.b d2,(a4)
- beq.s SkippaWait
- CMP.B (A5),D0
- BNE.S WaitaLoop
- Wait2: CMP.B (A5),D0
- Beq.s Wait2
- dbra D1,WaitaLoop
- SkippaWait:
- btst.b d2,(a4)
- beq.s SkippaWait
- MOVE.L 4.w,A6
- move.l ThisTask(PC),a1
- MOVEQ #127,D0
- JSR -$12C(A6)
- MOVE.L GfxBase(PC),A6
- jsr -$1c8(a6)
- jsr -$E4(A6)
- JSR -$E4(A6)
- move.l 4.w,a6
- JSR -$84(a6)
- JSR -$78(A6)
- bsr.w HEAVYINIT
- move.l 4.w,a6
- JSR -$7E(A6)
- JSR -$8A(A6)
- move.l ThisTask(PC),a1
- MOVE.L pr_Win(PC),$B8(A1)
- MOVEQ #0,D0
- JSR -$12C(A6)
- MOVE.L GfxBase(PC),A6
- jsr -$E4(A6)
- JSR -$E4(A6)
- jsr -$1ce(a6)
- MOVE.L IntuiBase(PC),A0
- CMP.W #39,$14(A0)
- BLT.s Vecchissima
- BSR.w RimettiSprites
- Vecchissima:
- MOVE.L GfxBase(PC),A6
- move.l VPfirstScreen(PC),a0
- LEA SavedColor0(PC),A1
- MOVEQ #1,D0
- MOVE.L GfxBase(PC),A6
- JSR -$C0(a6)
- MOVE.L WBVIEW(PC),A1
- JSR -$DE(A6)
- JSR -$10E(A6)
- JSR -$10E(A6)
- MOVE.W #$11,$DFF10C
- MOVE.L $26(a6),$dff080
- MOVE.L $32(a6),$dff084
- bsr.w InputON
- MOVE.L IntuiBase(PC),A6
- JSR -$186(A6)
- MOVE.L A6,A1
- move.l 4.w,a6
- jsr -$19E(a6)
- EXIT1: MOVE.L GfxBase(PC),A1
- jsr -$19E(a6)
- EXIT2: MOVE.L DosBase(PC),A1
- jsr -$19E(a6)
- EXIT3: movem.l (SP)+,d0-d7/a0-a6
- RTS
-
- pr_Win: dc.l 0
- colore0:
- dc.w $012
- SavedColor0:
- dc.w 0
- VPfirstScreen:
- dc.l 0
- ThisTask:
- dc.l 0
-
- ResettaSpritesV39:
- MOVE.L IntuiBase(PC),A6
- LEA Workbench(PC),A0
- JSR -$1FE(A6)
- MOVE.L D0,SchermoWBLocckato
- BEQ.s ErroreSchermo
- MOVE.L D0,A0
- MOVE.L $30(A0),A0
- LEA GETVidCtrlTags(PC),A1
- MOVE.L GfxBase(PC),A6
- JSR -$2C4(A6)
- MOVE.L IntuiBase(PC),A6
- move.l $3c(a6),a0
- MOVE.L $30(A0),A0
- LEA GETVidCtrlTags2(PC),A1
- MOVE.L GfxBase(PC),A6
- JSR -$2C4(A6)
- MOVE.L SchermoWBLocckato(PC),A0
- MOVE.L $30(A0),A0
- LEA SETVidCtrlTags(PC),A1
- MOVE.L GfxBase(PC),A6
- JSR -$2C4(A6)
- move.L IntuiBase(PC),A6
- move.l $3c(a6),a0
- move.L $30(A0),A0
- LEA SETVidCtrlTags(PC),A1
- move.L GfxBase(PC),A6
- JSR -$2C4(A6)
- move.L SchermoWBLocckato(PC),A0
- move.L IntuiBase(PC),A6
- JSR -$17A(A6)
- move.l $3c(a6),a0
- JSR -$17A(A6)
- JSR -$186(A6)
- ErroreSchermo:
- RTS
-
- RimettiSprites:
- MOVE.L SchermoWBLocckato(PC),D0
- BEQ.S NonAvevaFunzionato
- MOVE.L D0,A0
- MOVE.L OldRisoluzione(PC),OldRisoluzione2
- LEA SETOldVidCtrlTags(PC),A1
- MOVE.L $30(A0),A0
- MOVE.L GfxBase(PC),A6
- JSR -$2C4(A6)
- MOVE.L IntuiBase(PC),A6
- move.l $3c(a6),a0
- MOVE.L OldRisoluzioneP(PC),OldRisoluzione2
- LEA SETOldVidCtrlTags(PC),A1
- MOVE.L $30(A0),A0
- MOVE.L GfxBase(PC),A6
- JSR -$2C4(A6)
- move.L IntuiBase(PC),A6
- move.L SchermoWBLocckato(PC),A0
- JSR -$17A(A6)
- move.l $3c(a6),a0
- JSR -$17A(A6)
- MOVE.L SchermoWBLocckato(PC),A1
- SUB.L A0,A0
- move.L IntuiBase(PC),A6
- JSR -$204(A6)
- NonAvevaFunzionato:
- RTS
- SchermoWBLocckato:
- dc.l 0
-
- GETVidCtrlTags:
- dc.l $80000032
- OldRisoluzione:
- dc.l 0
- dc.l 0,0,0
-
- GETVidCtrlTags2:
- dc.l $80000032
- OldRisoluzioneP:
- dc.l 0
- dc.l 0,0,0
- SETVidCtrlTags:
- dc.l $80000031
- dc.l 1
- dc.l 0,0,0
- SETOldVidCtrlTags:
- dc.l $80000031
- OldRisoluzione2:
- dc.l 0
- dc.l 0,0,0
- Workbench:
- dc.b 'Workbench',0
-
- InputOFF:
- LEA INPUTMPORT(PC),A1
- BSR.w CREATEPORT
- CMP.L #-1,D0
- BEQ.w INTUIERROR
- MOVE.L #INPUTMPORT,inputioST
- LEA INPUTDEVICE(PC),A0
- MOVEQ #0,D0
- LEA INPUTIO(PC),A1
- MOVEQ #0,D1
- MOVE.L 4.w,A6
- JSR -$1BC(A6)
- TST.L D0
- BNE.S INTUITIONON1
- MOVE.B #51,LN_PRI
- CLR.L IS_DATA
- MOVE.L #READINPUT,IS_CODE
- MOVE.W #9,IO_COMMAND
- MOVE.L #INPUTHANDLER,IO_DATA
- LEA INPUTIO(PC),A1
- MOVE.L 4.w,A6
- JSR -$1C8(A6)
- RTS
- READINPUT:
- MOVEQ #0,D0
- RTS
-
- InputON:
- TST.B InputErrFlag
- BNE.S EsciInputON
- MOVE.W #10,IO_COMMAND
- MOVE.L #INPUTHANDLER,IO_DATA
- LEA INPUTIO(PC),A1
- MOVE.L 4.w,A6
- JSR -$1C8(A6)
- LEA INPUTIO(PC),A1
- MOVE.L 4.w,A6
- JSR -$1C2(A6)
- INTUITIONON1:
- LEA INPUTMPORT(PC),A1
- BSR.s FREEUPPORT
- INTUIERROR:
- MOVE.B #$FF,InputErrFlag
- EsciInputON:
- RTS
- InputErrFlag:
- dc.w 0
- CREATEPORT:
- MOVE.L A1,-(SP)
- MOVEQ #-1,D0
- MOVE.L 4.w,A6
- JSR -$14A(A6)
- MOVEQ #-1,D1
- CMP.L D1,D0
- BEQ.S FREEUPPORT1
- MOVE.L (SP),A0
- MOVE.B #0,9(A0)
- MOVE.B #4,8(A0)
- MOVE.B #0,14(A0)
- MOVE.B D0,15(A0)
- SUBA.L A1,A1
- MOVE.L 4.w,A6
- JSR -$126(A6)
- MOVE.L (SP),A1
- MOVE.L D0,$10(A1)
- LEA $14(A1),A0
- MOVE.L A0,(A0)
- ADDQ.L #4,(A0)
- CLR.L 4(A0)
- MOVE.L A0,8(A0)
- CREATEPORTEXIT:
- MOVE.L (SP)+,D0
- RTS
- FREEUPPORT:
- MOVE.L A1,-(SP)
- MOVE.B 15(A1),D0
- MOVE.L 4.w,A6
- JSR -$150(A6)
- FREEUPPORT1:
- MOVE.L (SP)+,A1
- RTS
-
- INPUTMPORT: ds.b 34
- INPUTIO: ds.b 14
- inputioST: ds.b 14
- IO_COMMAND: ds.b 12
- IO_DATA: ds.b 8
- INPUTHANDLER: ds.b 9
- LN_PRI: ds.b 5
- IS_DATA: dc.l 0
- IS_CODE: dc.l 0
- INPUTDEVICE: dc.b 'input.device',0,0
-
- HEAVYINIT:
- LEA $DFF000,A5
- MOVE.W $2(A5),OLDDMA
- MOVE.W $1C(A5),OLDINTENA
- MOVE.W $10(A5),OLDADKCON
- MOVE.W $1E(A5),OLDINTREQ
- MOVE.L #$80008000,d0
- OR.L d0,OLDDMA
- OR.L d0,OLDADKCON
- MOVE.L #$7FFF7FFF,$9A(a5)
- MOVE.L #0,$144(A5)
- MOVE.W #$7FFF,$96(a5)
- MOVE.L #0,$144(A5)
- move.l 4.w,a6
- btst.b #0,$129(a6)
- beq.s IntOK
- lea SuperCode(PC),a5
- jsr -$1e(a6)
- bra.s IntOK
- SuperCode:
- dc.l $4e7a9801
- move.l a1,BaseVBR
- RTE
- BaseVBR: dc.l 0
-
- IntOK: move.l BaseVBR(PC),a0
- move.l $64(a0),OldInt64
- move.l $68(a0),OldInt68
- move.l $6c(a0),OldInt6c
- move.l $70(a0),OldInt70
- move.l $74(a0),OldInt74
- move.l $78(a0),OldInt78
- bsr.w ClearMyCache
- lea $dff000,a5
-
- bsr.w START ;<--- Qui salta al programma vero e proprio
-
- bsr.w ClearMyCache
- LEA $dff000,a5
- MOVE.W #$8240,$96(a5)
- BTST.b #6,2(a5)
- Wblittez:
- BTST.b #6,2(a5)
- BNE.S Wblittez
- MOVE.W #$7FFF,$96(A5)
- MOVE.L #$7FFF7FFF,$9A(A5)
- MOVE.W #$7fff,$9E(a5)
- move.l BaseVBR(PC),a0
- move.l OldInt64(PC),$64(a0)
- move.l OldInt68(PC),$68(a0)
- move.l OldInt6c(PC),$6c(a0)
- move.l OldInt70(PC),$70(a0)
- move.l OldInt74(PC),$74(a0)
- move.l OldInt78(PC),$78(a0)
- MOVE.W OLDADKCON(PC),$9E(A5)
- MOVE.W OLDDMA(PC),$96(A5)
- MOVE.W OLDINTENA(PC),$9A(A5)
- MOVE.W OLDINTREQ(PC),$9C(A5)
- RTS
- WBVIEW: DC.L 0
- GfxName: dc.b 'graphics.library',0,0
- IntuiName: dc.b 'intuition.library',0
- DosName: dc.b "dos.library",0
- GfxBase: dc.l 0
- IntuiBase: dc.l 0
- DosBase: dc.l 0
- OLDDMA: dc.w 0
- OLDINTENA: dc.w 0
- OLDADKCON: DC.W 0
- OLDINTREQ: DC.W 0
- OldInt64: dc.l 0
- OldInt68: dc.l 0
- OldInt6c: dc.l 0
- OldInt70: dc.l 0
- OldInt74: dc.l 0
- OldInt78: dc.l 0
- ClearMyCache:
- movem.l d0-d7/a0-a6,-(SP)
- move.l 4.w,a6
- MOVE.W $14(A6),D0
- CMP.W #37,D0
- blo.s nocaches
- jsr -$27c(a6)
- nocaches:
- movem.l (sp)+,d0-d7/a0-a6
- rts
-